# http://docs.jinkan.org/docs/flask/quickstart.html
from flask import Flask
from flask import jsonify
from flask import request
from util import py_time
from redis_helper import RedisHelper

__author__ = 'mud'
app = Flask(__name__)
db = RedisHelper()

'''
使用jsonify时响应的Content-Type字段值为application/json，
而使用json.dumps时该字段值为text/html。
Content-Type决定了接收数据的一方如何看待数据，
如何处理数据，如果是application/json，
则可以直接当做json对象处理，
若是text/html，则还要将文本对象转化为json对象再做处理
'''


# app.logger.debug
# app.logger.warning
# app.logger.error

@app.route('/')
def index():
    # app.logger.debug('index')
    return jsonify(current=py_time.current_datetime(), status=200)


@app.route('/test')
def test():
    return jsonify(request.args)


@app.route('/user/<name_>', methods=['GET', 'POST'])
def greet(name_):
    if request.method == 'GET':
        # return 'Hello, {}'.format(name_)
        return jsonify(name=name_)


@app.route('/id/<int:id_>')
def get_id(id_):
    # return 'Request Id: {}'.format(id_)
    return jsonify(id=id_, status=200)


@app.route('/header')
def get_header():
    # print(request.headers.get('User-Agent'))
    return jsonify(reply=str(request.headers), status=200)


@app.route('/whisper/<key_>')
def do_get(key_):
    return jsonify(reply=db.get(key_), status=200)


@app.route('/whisper/<key_>/<value_>')
def do_put(key_, value_):
    db.put(key_, value_)
    return jsonify(reply='Done', status=200)


@app.errorhandler(404)
def not_found(error):
    return jsonify(reply='File Not Found', status=404)


# 开发用服务器
if __name__ == "__main__":
    app.run(debug=True)
    # app.run(host='0.0.0.0', port=80)
